var mongoose = require('mongoose')

var Schema = mongoose.Schema;

var userSchema = new Schema({
  username:{
    type: String,
    //必选字段 必须填写 传空字段会无法插入
    //required两个参数 第二个参数是自定义的报错信息
    required: [true, '用户名为空'],
    //字符串最小长度 最大长度
    minlength: [1, '用户名最小长度是1'],
    maxlength: [20, '用户名最大长度是20'],
    //去除字符串两边的空格
    trim: true
  },
  password:String,
  avator: String,
  id: String,
  age: String,
  //   age: {
  //     type: Number,
  //     // 数字的最小范围
  //     min: 18,
  //     // 数字的最大范围
  //     max: 170
  // },
  Email:String,
  adress: Array,
  detailAdress:String,
  nativePlace:String,
  company: String,
  isVip: Boolean,
  hireDate: {
    type: Date,
    // 味传输的话使用默认值当前时间
    default: Date.now
  },
  profile: String,
  phone: String,
  telPhone: String,
  //也可以自定义验证器
  //例如要求输入值并且长度大于四
  // author: {
  //   type: String,
  //   validate: {
  //       validator: v => {
  //           // 返回布尔值
  //           // true 验证成功
  //           // false 验证失败
  //           // v 要验证的值
  //           return v && v.length > 4
  //       },
  //       // 自定义错误信息
  //       message: '传入的值不符合验证规则'
  //   }
  // },
  sex: {
    type: String,
    // 枚举 列举出当前字段可以拥有的值
    enum: {
        values: ['男', '女',],
        message: '性别选择错误'
    }
  },
  //字段配置项plus
  // lowercase: true, // 总是将test的值转化为小写
  // uppercase: true, // 总是将test的值转化为大写
  // required:true, //设定是否必填
  // default:'star', //设定默认值
  // index：true, //设定索引值
  // unique：true, //索引值唯一
  // sparse：true, //是否启用稀疏索引
  // match：RegExp, //判断是否通过正则验证
  // enum：Array， //判断test值是否包含于enmu对应的数组中
  // min：Number， //判断对应值是否大于等于给定值
  // max：Number， //判断对应值是否小于等于给定值
  // trim:true //去除数据前后的空格
  // capped:1024 //限定大小最大为1024字节
  // validate：function，为此属性添加一个验证器函数，
  // get：function，//为这个属性定义一个定制的getter Object.defineProperty()。如demo2所示
  // set：function，//定义此属性的自定义设置Object.defineProperty()。如demo2所示
  // demo2：将传入的值四舍五入后存储 
  // var numberSchema = new Schema({
  //   integerOnly: {
  //     type: Number,
  //     get: v => Math.round(v),
  //     set: v => Math.round(v)，
  //     require:true
  //   }
  // });
})

var userModel = mongoose.model('userModel',userSchema)

module.exports = userModel